import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args) {
//        获取用户日期的测试
//        int[] data = myDate();
//        System.out.printf("%d年%d月%d日",date[0],date[1],date[2]);
//
//         平年闰年测试
//        System.out.println(leapYear(2001));
        System.out.println(sumOfyear(myDate()));
    }

    /**
     * 获取年月日
     * 用数组描述的年月日 [0]年份 [1]月份 [2]日期
     */
    public static int[] myDate() {
        int[] myDate = new int[3];
        System.out.println("请输入年份：");
        myDate[0] = new Scanner(System.in).nextInt();
        System.out.println("请输入月份：");
        myDate[1] = new Scanner(System.in).nextInt();
        System.out.println("请输入日期：");
        myDate[2] = new Scanner(System.in).nextInt();
        return myDate;
    }

    /**
     * 判断平闰年
     *
     * @param year 年份
     * @return true为闰年 false为平年
     */
    public static boolean leapYear(int year) {
//        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
//            return true;
//        }else {
//            return false;
//        }
        return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
    }

    /**
     * 判断一下用户输入的年份以及月份所对应的天数
     *
     * @param year  年份
     * @param month 月份
     * @return 天数
     */
    public static int daysOfMonth(int year, int month) {
        switch (month) {
            case 1: case 3: case 5: case 7: case 8: case 10: case 12:
                return 31;
            case 4: case 6: case 9: case 11:
                return 30;
            case 2:
                if (leapYear(year)) {
                    return 29;
                }else {
                    return 28;
                }
            default:
                System.out.println("月份输入非法！！！");
                return -1;
        }
    }

    /**
     * 判断输入合法性
     *
     * @param year  年份
     * @param month 月份
     * @param day   日期
     * @return true合法  false不合法
     */
    public static boolean Inputjudge(int year, int month, int day) {
        return (!(year < 0 || month > 12 || month < 1 || day < 1 || day > daysOfMonth(year, month)));
    }

    /**
     * 计算日期在一年中的第多少天
     *
     * @param myDate 用户输入的日期
     * @return 日期在年份中的第多少天
     */
    public static int sumOfyear(int[] myDate) {
        if (!(Inputjudge(myDate[0], myDate[1], myDate[2]))) {
            System.out.println("日期输入非法！！");
            return -1;
        }
        int sum = 0;
        for (int i = myDate[1] - 1; i > 0; i--) {
            sum += daysOfMonth(myDate[0], i);
        }
        sum += myDate[2];
        return sum;
    }
}
